<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
  Class: Vertx::EventBus
  
    &mdash; Ruby API Doc
  
</title>

  <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />

  <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />

<script type="text/javascript" charset="utf-8">
  hasFrames = window.top.frames.main ? true : false;
  relpath = '../';
  framesUrl = "../frames.html#!" + escape(window.location.href);
</script>


  <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>

  <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>


  </head>
  <body>
    <div id="header">
      <div id="menu">
  
    <a href="../_index.html">Index (E)</a> &raquo;
    <span class='title'><span class='object_link'><a href="../Vertx.html" title="Vertx (module)">Vertx</a></span></span>
     &raquo; 
    <span class="title">EventBus</span>
  

  <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>

      <div id="search">
  
    <a class="full_list_link" id="class_list_link"
        href="../class_list.html">
      Class List
    </a>
  
    <a class="full_list_link" id="method_list_link"
        href="../method_list.html">
      Method List
    </a>
  
    <a class="full_list_link" id="file_list_link"
        href="../file_list.html">
      File List
    </a>
  
</div>
      <div class="clear"></div>
    </div>

    <iframe id="search_frame"></iframe>

    <div id="content"><h1>Class: Vertx::EventBus
  
  
  
</h1>

<dl class="box">
  
    <dt class="r1">Inherits:</dt>
    <dd class="r1">
      <span class="inheritName">Object</span>
      
        <ul class="fullTree">
          <li>Object</li>
          
            <li class="next">Vertx::EventBus</li>
          
        </ul>
        <a href="#" class="inheritanceTree">show all</a>
      
      </dd>
    
  
  
    
  
    
  
  
  
    <dt class="r2 last">Defined in:</dt>
    <dd class="r2 last">src/main/api_shim/core/event_bus.rb</dd>
  
</dl>
<div class="clear"></div>

<h2>Overview</h2><div class="docstring">
  <div class="discussion">
    For point to point messaging, messages can be sent to an address using the send method.
The messages will be delivered to a single handler, if one is registered on that address. If more than one
handler is registered on the same address, Vert.x will choose one and deliver the message to that. Vert.x will
aim to fairly distribute messages in a round-robin way, but does not guarantee strict round-robin under all
circumstances.

All messages sent over the bus are transient. On event of failure of all or part of the event bus messages
may be lost. Applications should be coded to cope with lost messages, e.g. by resending them,
and making application services idempotent.

The order of messages received by any specific handler from a specific sender should match the order of messages
sent from that sender.

When sending a message, a reply handler can be provided. If so, it will be called when the reply from the receiver
has been received. Reply messages can also be replied to, etc, ad infinitum.

Different event bus instances can be clustered together over a network, to give a single logical event bus.

When receiving a message in a handler the received object is an instance of EventBus::Message - this contains
the actual message plus a reply method which can be used to reply to it.

  </div>
</div>
<div class="tags">
  
<p class="tag_title">Author:</p>
<ul class="author">
  
    <li>
      
      
      
      
        
        <div class='inline'><a href="http://tfox.org" target="_parent" title="Tim Fox">Tim Fox</a></div>
      
    </li>
  
</ul>

</div>
  <h2>Constant Summary</h2>
  
    <dl class="constants">
      
        <dt id="handler_map-classvariable" class="">@@handler_map =
          
        </dt>
        <dd><pre class="code"><span class='lbrace token'>{</span><span class='rbrace token'>}</span>
</pre></dd>
      
        <dt id="j_eventbus-classvariable" class="">@@j_eventbus =
          
        </dt>
        <dd><pre class="code"><span class='rubyid_org identifier id'>org</span><span class='dot token'>.</span><span class='rubyid_vertx identifier id'>vertx</span><span class='dot token'>.</span><span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_platform identifier id'>platform</span><span class='dot token'>.</span><span class='rubyid_impl identifier id'>impl</span><span class='dot token'>.</span><span class='rubyid_JRubyVerticleFactory constant id'>JRubyVerticleFactory</span><span class='dot token'>.</span><span class='rubyid_vertx identifier id'>vertx</span><span class='dot token'>.</span><span class='rubyid_eventBus identifier id'>eventBus</span><span class='lparen token'>(</span><span class='rparen token'>)</span>
</pre></dd>
      
    </dl>
  







  
    <h2>
      Class Method Summary
      <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
    </h2>

    <ul class="summary">
      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#publish-class_method" title="publish (class method)">+ (Object) <strong>publish</strong>(address, message) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>Publish a message on the event bus.</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#register_handler-class_method" title="register_handler (class method)">+ (FixNum) <strong>register_handler</strong>(address, local_only = false, &amp;message_hndlr) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>Register a handler.</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#register_simple_handler-class_method" title="register_simple_handler (class method)">+ (FixNum) <strong>register_simple_handler</strong>(local_only = false, &amp;message_hndlr) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>Registers a handler against a uniquely generated address, the address is returned as the id
received by the handler.</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#send-class_method" title="send (class method)">+ (Object) <strong>send</strong>(address, message, &amp;reply_handler) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>Send a message on the event bus
It will be called when the reply from a receiver is received.</div></span>
  
</li>

      
        <li class="public ">
  <span class="summary_signature">
    
      <a href="#unregister_handler-class_method" title="unregister_handler (class method)">+ (Object) <strong>unregister_handler</strong>(handler_id) </a>
    

    
  </span>
  
  
  
  
  
  
  

  
    <span class="summary_desc"><div class='inline'>Unregisters a handler.</div></span>
  
</li>

      
    </ul>
  



  <div id="class_method_details" class="method_details_list">
    <h2>Class Method Details</h2>

    
      <div class="method_details first">
  <h3 class="signature first" id="publish-class_method">
  
    + (<tt>Object</tt>) <strong>publish</strong>(address, message) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    Publish a message on the event bus

  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>message</span>
      
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The message to publish</div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


69
70
71
72</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'src/main/api_shim/core/event_bus.rb', line 69</span>

<span class='rubyid_def def kw'>def</span> <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_publish identifier id'>publish</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_message identifier id'>message</span><span class='rparen token'>)</span>
  <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_send_or_pub identifier id'>send_or_pub</span><span class='lparen token'>(</span><span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_message identifier id'>message</span><span class='rparen token'>)</span>
  <span class='rubyid_self self kw'>self</span>
<span class='rubyid_end end kw'>end</span>
</pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="register_handler-class_method">
  
    + (<tt>FixNum</tt>) <strong>register_handler</strong>(address, local_only = false, &amp;message_hndlr) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    Register a handler.
received by the handler. A single handler can be registered against many addresses.

  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>address</span>
      
      
        <span class='type'>(<tt>String</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The address to register for. Messages sent to that address will be</div>
      
    </li>
  
    <li>
      
        <span class='name'>local_only</span>
      
      
        <span class='type'>(<tt>Boolean</tt>)</span>
      
      
        <em class="default">(defaults to: <tt>false</tt>)</em>
      
      
        &mdash;
        <div class='inline'>If true then handler won't be propagated across cluster</div>
      
    </li>
  
    <li>
      
        <span class='name'>message_hndlr</span>
      
      
        <span class='type'>(<tt>Block</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The handler</div>
      
    </li>
  
</ul>

<p class="tag_title">Returns:</p>
<ul class="return">
  
    <li>
      
      
        <span class='type'>(<tt>FixNum</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>id of the handler which can be used in <span class='object_link'><a href="#unregister_handler-class_method" title="Vertx::EventBus.unregister_handler (method)">unregister_handler</a></span></div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


97
98
99
100
101
102
103
104
105
106
107
108
109</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'src/main/api_shim/core/event_bus.rb', line 97</span>

<span class='rubyid_def def kw'>def</span> <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_register_handler identifier id'>register_handler</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_local_only identifier id'>local_only</span> <span class='assign token'>=</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span><span class='rparen token'>)</span>
  <span class='rubyid_raise identifier id'>raise</span> <span class='string val'>&quot;An address must be specified&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='notop op'>!</span><span class='rubyid_address identifier id'>address</span>
  <span class='rubyid_raise identifier id'>raise</span> <span class='string val'>&quot;A message handler must be specified&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='notop op'>!</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span>
  <span class='rubyid_internal identifier id'>internal</span> <span class='assign token'>=</span> <span class='rubyid_InternalHandler constant id'>InternalHandler</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span><span class='rparen token'>)</span>
  <span class='rubyid_if if kw'>if</span> <span class='rubyid_local_only identifier id'>local_only</span>
    <span class='rubyid_@@j_eventbus ivar id'>@@j_eventbus</span><span class='dot token'>.</span><span class='rubyid_registerLocalHandler identifier id'>registerLocalHandler</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rparen token'>)</span>
  <span class='rubyid_else else kw'>else</span>
    <span class='rubyid_@@j_eventbus ivar id'>@@j_eventbus</span><span class='dot token'>.</span><span class='rubyid_registerHandler identifier id'>registerHandler</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rparen token'>)</span>
  <span class='rubyid_end end kw'>end</span>
  <span class='rubyid_id identifier id'>id</span> <span class='assign token'>=</span> <span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_util identifier id'>util</span><span class='dot token'>.</span><span class='rubyid_UUID constant id'>UUID</span><span class='dot token'>.</span><span class='rubyid_randomUUID identifier id'>randomUUID</span><span class='dot token'>.</span><span class='rubyid_toString identifier id'>toString</span>
  <span class='rubyid_@@handler_map ivar id'>@@handler_map</span><span class='lbrack token'>[</span><span class='rubyid_id identifier id'>id</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rbrack token'>]</span>
  <span class='rubyid_id identifier id'>id</span>
<span class='rubyid_end end kw'>end</span>
</pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="register_simple_handler-class_method">
  
    + (<tt>FixNum</tt>) <strong>register_simple_handler</strong>(local_only = false, &amp;message_hndlr) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    Registers a handler against a uniquely generated address, the address is returned as the id
received by the handler. A single handler can be registered against many addresses.

  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>local_only</span>
      
      
        <span class='type'>(<tt>Boolean</tt>)</span>
      
      
        <em class="default">(defaults to: <tt>false</tt>)</em>
      
      
        &mdash;
        <div class='inline'>If true then handler won't be propagated across cluster</div>
      
    </li>
  
    <li>
      
        <span class='name'>message_hndlr</span>
      
      
        <span class='type'>(<tt>Block</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The handler</div>
      
    </li>
  
</ul>

<p class="tag_title">Returns:</p>
<ul class="return">
  
    <li>
      
      
        <span class='type'>(<tt>FixNum</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>id of the handler which can be used in <span class='object_link'><a href="#unregister_handler-class_method" title="Vertx::EventBus.unregister_handler (method)">unregister_handler</a></span></div>
      
    </li>
  
</ul>

</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


116
117
118
119
120
121
122
123
124
125
126
127</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'src/main/api_shim/core/event_bus.rb', line 116</span>

<span class='rubyid_def def kw'>def</span> <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_register_simple_handler identifier id'>register_simple_handler</span><span class='lparen token'>(</span><span class='rubyid_local_only identifier id'>local_only</span> <span class='assign token'>=</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span><span class='rparen token'>)</span>
  <span class='rubyid_raise identifier id'>raise</span> <span class='string val'>&quot;A message handler must be specified&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='notop op'>!</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span>
  <span class='rubyid_internal identifier id'>internal</span> <span class='assign token'>=</span> <span class='rubyid_InternalHandler constant id'>InternalHandler</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_message_hndlr identifier id'>message_hndlr</span><span class='rparen token'>)</span>
  <span class='rubyid_id identifier id'>id</span> <span class='assign token'>=</span> <span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_util identifier id'>util</span><span class='dot token'>.</span><span class='rubyid_UUID constant id'>UUID</span><span class='dot token'>.</span><span class='rubyid_randomUUID identifier id'>randomUUID</span><span class='dot token'>.</span><span class='rubyid_toString identifier id'>toString</span>
  <span class='rubyid_if if kw'>if</span> <span class='rubyid_local_only identifier id'>local_only</span>
    <span class='rubyid_@@j_eventbus ivar id'>@@j_eventbus</span><span class='dot token'>.</span><span class='rubyid_registerLocalHandler identifier id'>registerLocalHandler</span><span class='lparen token'>(</span><span class='rubyid_id identifier id'>id</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rparen token'>)</span>
  <span class='rubyid_else else kw'>else</span>
    <span class='rubyid_@@j_eventbus ivar id'>@@j_eventbus</span><span class='dot token'>.</span><span class='rubyid_registerHandler identifier id'>registerHandler</span><span class='lparen token'>(</span><span class='rubyid_id identifier id'>id</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rparen token'>)</span>
  <span class='rubyid_end end kw'>end</span>
  <span class='rubyid_@@handler_map ivar id'>@@handler_map</span><span class='lbrack token'>[</span><span class='rubyid_id identifier id'>id</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='rubyid_id identifier id'>id</span><span class='comma token'>,</span> <span class='rubyid_internal identifier id'>internal</span><span class='rbrack token'>]</span>
  <span class='rubyid_id identifier id'>id</span>
<span class='rubyid_end end kw'>end</span>
</pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="send-class_method">
  
    + (<tt>Object</tt>) <strong>send</strong>(address, message, &amp;reply_handler) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    Send a message on the event bus
It will be called when the reply from a receiver is received.

  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>message</span>
      
      
        <span class='type'>(<tt>Hash</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The message to send</div>
      
    </li>
  
    <li>
      
        <span class='name'>reply_handler</span>
      
      
        <span class='type'>(<tt>Block</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>An optional reply handler.</div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


62
63
64
65</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'src/main/api_shim/core/event_bus.rb', line 62</span>

<span class='rubyid_def def kw'>def</span> <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_message identifier id'>message</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_reply_handler identifier id'>reply_handler</span><span class='rparen token'>)</span>
  <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_send_or_pub identifier id'>send_or_pub</span><span class='lparen token'>(</span><span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='rubyid_address identifier id'>address</span><span class='comma token'>,</span> <span class='rubyid_message identifier id'>message</span><span class='comma token'>,</span> <span class='rubyid_reply_handler identifier id'>reply_handler</span><span class='rparen token'>)</span>
  <span class='rubyid_self self kw'>self</span>
<span class='rubyid_end end kw'>end</span>
</pre>
    </td>
  </tr>
</table>
</div>
    
      <div class="method_details ">
  <h3 class="signature " id="unregister_handler-class_method">
  
    + (<tt>Object</tt>) <strong>unregister_handler</strong>(handler_id) 
  

  

  
</h3><div class="docstring">
  <div class="discussion">
    Unregisters a handler

  </div>
</div>
<div class="tags">
  <p class="tag_title">Parameters:</p>
<ul class="param">
  
    <li>
      
        <span class='name'>handler_id</span>
      
      
        <span class='type'>(<tt>FixNum</tt>)</span>
      
      
      
        &mdash;
        <div class='inline'>The id of the handler to unregister. Returned from <span class='object_link'><a href="#register_handler-class_method" title="Vertx::EventBus.register_handler (method)">register_handler</a></span></div>
      
    </li>
  
</ul>


</div><table class="source_code">
  <tr>
    <td>
      <pre class="lines">


131
132
133
134
135
136
137</pre>
    </td>
    <td>
      <pre class="code"><span class="info file"># File 'src/main/api_shim/core/event_bus.rb', line 131</span>

<span class='rubyid_def def kw'>def</span> <span class='rubyid_EventBus constant id'>EventBus</span><span class='dot token'>.</span><span class='rubyid_unregister_handler identifier id'>unregister_handler</span><span class='lparen token'>(</span><span class='rubyid_handler_id identifier id'>handler_id</span><span class='rparen token'>)</span>
  <span class='rubyid_raise identifier id'>raise</span> <span class='string val'>&quot;A handler_id must be specified&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='notop op'>!</span><span class='rubyid_handler_id identifier id'>handler_id</span>
  <span class='rubyid_tuple identifier id'>tuple</span> <span class='assign token'>=</span> <span class='rubyid_@@handler_map ivar id'>@@handler_map</span><span class='dot token'>.</span><span class='rubyid_delete identifier id'>delete</span><span class='lparen token'>(</span><span class='rubyid_handler_id identifier id'>handler_id</span><span class='rparen token'>)</span>
  <span class='rubyid_raise identifier id'>raise</span> <span class='dstring node'>&quot;Cannot find handler for id #{handler_id}&quot;</span> <span class='rubyid_if if_mod kw'>if</span> <span class='notop op'>!</span><span class='rubyid_tuple identifier id'>tuple</span>
  <span class='rubyid_@@j_eventbus ivar id'>@@j_eventbus</span><span class='dot token'>.</span><span class='rubyid_unregisterHandler identifier id'>unregisterHandler</span><span class='lparen token'>(</span><span class='rubyid_tuple identifier id'>tuple</span><span class='dot token'>.</span><span class='rubyid_first identifier id'>first</span><span class='comma token'>,</span> <span class='rubyid_tuple identifier id'>tuple</span><span class='dot token'>.</span><span class='rubyid_last identifier id'>last</span><span class='rparen token'>)</span>
  <span class='rubyid_self self kw'>self</span>
<span class='rubyid_end end kw'>end</span>
</pre>
    </td>
  </tr>
</table>
</div>
    
  </div>

</div>

    <div id="footer">
  Generated on Wed Jul 17 20:30:37 2013 by
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
  0.8.6.1 (ruby-1.9.3).
</div>

  </body>
</html>